package com.hd.util;

/**
 * 转换字符.

 * 作者：于涛
 * 版本：2006-06-24
 * 通知通告管理
 */
public class TransformCharacter {

    /** 将页面输入字符转为数据库存储字符
     * @param {@value 页面输入字符}
     * @return String 转换后，用于数据库存储的字符
     */
    public static String doTransition(String value){
        String returnValue = value;

        //将半角空格转换为全角空格
        returnValue = returnValue.replaceAll(" ","　");

        //将HTML空格符号转换为全角空格
        returnValue = returnValue.replaceAll("&nbsp;","　");

        //将换行符转换为HTML换行符号
        returnValue = returnValue.replaceAll("\r\n","<br>");
        return returnValue;
    }

    /** 将数据库存储字符反转为页面输入字符
     * @param {@value 数据库存储的字符}
     * @return String 转换后，用于页面输入字符
     */
    public static String doUntransition(String value){
        String returnValue = value;

        //将全角空格转换为半角空格
        returnValue = returnValue.replaceAll("　"," ");

        //将换行符转换为HTML换行符号
        returnValue = returnValue.replaceAll("&lt;br&gt;","\r\n");
        returnValue = returnValue.replaceAll("<br>","\r\n");

        //将HTML转义字符转换为正常字符
        returnValue = returnValue.replaceAll("&lt;","<");
        returnValue = returnValue.replaceAll("&gt;",">");
        returnValue = returnValue.replaceAll("&amp;","&");
        returnValue = returnValue.replaceAll("&quot;","\"");

        return returnValue;
    }

    /** 将数据库存储字符转为页面输出显示的字符
     * @param {@value 数据库存储的字符}
     * @return String 转换后，用于页面输出显示的字符
     */
    public static String doView(String value){
        String returnValue = value;

        //将HTML转义字符转换为正常字符
        returnValue = returnValue.replaceAll("&lt;","<");
        returnValue = returnValue.replaceAll("&gt;",">");
        returnValue = returnValue.replaceAll("&amp;","&");
        returnValue = returnValue.replaceAll("&quot;","\"");

        //将连接中的全角空格转换为半角空格
        while(returnValue.indexOf("<a　") >= 0){

            String linkStr = returnValue.substring(returnValue.indexOf("<a"),returnValue.indexOf(">",returnValue.indexOf("<a")) + 1);

            linkStr = linkStr.replaceAll("　"," ");

            returnValue = returnValue.substring(0,returnValue.indexOf("<a"))
                          + linkStr
                          + returnValue.substring(returnValue.indexOf(">",returnValue.indexOf("<a")) + 1);

        }

        return returnValue;
    }

    /** 将数据库存储字符转为列表页输出显示的字符
     * @param {@value 数据库存储的字符}
     * @return String 转换后，用于列表页输出显示的字符
     */
    public static String doTrim(String value){
        String returnValue = value;

        //将全角空格转换为空串
        returnValue = returnValue.replaceAll("　","");

        //将HTML换行符号转换为空串
        returnValue = returnValue.replaceAll("&lt;br&gt;","");
        returnValue = returnValue.replaceAll("<br>","");

        //将HTML转义字符转换为正常字符
        returnValue = returnValue.replaceAll("&lt;","<");
        returnValue = returnValue.replaceAll("&gt;",">");
        returnValue = returnValue.replaceAll("&amp;","&");
        returnValue = returnValue.replaceAll("&quot;","\"");

        //将连接祛除
        while(returnValue.indexOf("<a") >= 0){

            returnValue = returnValue.substring(0,returnValue.indexOf("<a"))
                          + returnValue.substring(returnValue.indexOf(">",returnValue.indexOf("<a")) + 1,returnValue.indexOf("</a>"))
                          + returnValue.substring(returnValue.indexOf("</a>") + 4);
        }

        return returnValue;
    }

}

